Data stored and transmitted electronically may be vulnerable to theft. Data storage devices, such as hard drives, flash drives, compact disks, memory chips and the like, whether portable or built into a computing device, may be vulnerable to unauthorized remote access or the data being intercepted in transmission (i.e., “hacking”) if linked to a network. Data storage devices may also be vulnerable to actual theft of the physical device. In 2006, for instance, a data storage device storing over 17 million cellular phone records was stolen from a cellular phone company employee; the device was recovered by police but concerns arose in 2008 that the data had been copied before it was recovered. Once stolen, data may be read by unauthorized users with relative ease unless precautions are taken.
One mitigation strategy that may be used is to store data in an encrypted format unreadable by unauthorized users. Such methods usually involve transforming the data with some sort of encryption algorithm, such as the advanced encryption standard (AES) announced by the National Institute of Standards and Technology (NIST). U.S. FIPS PUB 197 (FIPS 197). To read the encrypted data, a decryption key or algorithm may be used. Access to the decryption key or algorithm is typically limited to authorized users. Without the decryption key, unauthorized users generally are limited to “brute force” decryption techniques to decrypt the data. With a suitably sophisticated encryption algorithm, such as AES, the amount of computing power required to do so renders such attacks virtually impossible or impractical.
Stand-alone programs such as TrueCrypt, or built-in routines within operating systems such as the ‘cypher’ command in Microsoft Windows are available that may encrypt individual files or the entirety of the data stored on bulk storage devices such as hard drives, floppy disks, or flash drives, for example. Protocols such as secure sockets layer (SSL) are widely used to secure data transmissions over the internet, coordinating encryption algorithms and decryption keys so that a data receiver may decrypt the incoming data. One remaining vulnerability, however, involves data stored by a data processing device such as a server or desktop computer in data caches.
Data caching is a nearly ubiquitous technique used with modern data processing devices to improve overall performance. Data access from data storage devices may be relatively slow compared to the data processing speed of data processors in modern data processing devices, such as the central processing unit (CPU) of modern computing systems. The CPU may be left operating at less than full capacity, remaining idle for several chip cycles as it waits for data to be read from storage, causing overall computer performance to suffer. To overcome this, hardware and software designers store copies of often-accessed data otherwise stored on slower storage devices onto faster storage devices in which data is much more quickly retrieved and transmitted. One example of a data cache is a disk cache, in which frequently retrieved data from bulk storage devices such as hard drives or memory sticks may be copied by the CPU and stored in main memory (i.e., in random access memory (RAM)). Data may be accessed by the CPU much more quickly from main memory than from even the fastest storage devices. Quicker access to frequently used data thus greatly improves overall processing speeds.
Data stored in the disk cache may be accessed like any other data on bulk storage devices, and may be thus likewise vulnerable to theft. Moreover, data stored in the disk cache is a copy of the most frequently accessed data from bulk storage, which may be the most sensitive data stored on the storage device.